Инструкция по настройке PHP и SMTP

ВАЖНО: Для проверки работоспособности сайт должен быть залит на хостинг!

Шаг 1: Установка PHP

Видео инструкция: Посмотреть

Скачайте PHP с официального сайта: php.net

Выберите: Windows downloads -> Zip (x64 Thread Safe)

Шаг 2: Установка Composer

Видео инструкция: Посмотреть

Скачайте Composer: getcomposer.org

Выберите: Download -> Composer-Setup.exe

Шаг 3: Установка PHPMailer

Перейдите в корневую директорию проекта и выполните команду:

composer require phpmailer/phpmailer

Эта команда создаст файл composer.json и установит PHPMailer в папку vendor.

Шаг 4: Настройка SMTP для Gmail

Шаги в настройках почты:

Настройки в Google-аккаунте:

Видео инструкция: Посмотреть

ВАЖНО: Перед использованием проверить SMTP через этот сервис.

Шаг 5: Создание PHP-скрипта для отправки почты

Создайте файл process.php в корневой папке.

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$statusMessage = '';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $mail = new PHPMailer(true);
    
    try { 
        $mail->isSMTP();
        $mail->Host = 'smtp.gmail.com';
        $mail->SMTPAuth = true;
        $mail->Username = 'example@gmail.com';
        $mail->Password = 'your_app_password';
        $mail->SMTPSecure = 'ssl';
        $mail->Port = 465;
        $mail->CharSet = "UTF-8";

        $to = "moydadur@gmail.com";
        $subject = "Запитання від:" . $_POST["name"];

        $mail->isHTML(true);
        $mail->Subject = $subject;
        $mail->Body = "<h1>Питання</h1>
        <p><strong>Ім'я:</strong> {$_POST["name"]}</p>
        <p><strong>Email:</strong> {$_POST["email"]}</p>
        <p><strong>Залишене питання:</strong> {$_POST["message"]}</p>";

        $mail->setFrom($_POST["email"]);
        $mail->addAddress($to);
        $mail->send();

        $statusMessage = '

Ваше питання відправлено

'; } catch (Exception $e) { $statusMessage = "Ошибка отправки формы: {$mail->ErrorInfo}"; } } echo json_encode(['message' => $statusMessage]); ?>

Шаг 6: Создание HTML-формы

Создайте HTML-страницу с формой для отправки данных:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Contact Form</title>
</head>
<body>
    <form action="mail.php" method="post">
        <label for="name">Name:</label>
        <input type="text" name="name" required>

        <label for="email">Email:</label>
        <input type="email" name="email" required>

        <label for="message">Message:</label>
        <textarea name="message" rows="5" required></textarea>

        <button type="submit">Submit</button>
    </form>
</body>
</html>